package com.dcjt.firehotcarpad.base

import android.os.Bundle
import com.amap.api.location.AMapLocation
import com.amap.api.location.CoordinateConverter.calculateLineDistance
import com.amap.api.location.DPoint
import com.aries.library.fast.manager.LoggerManager
import com.aries.library.fast.module.activity.FastTitleActivity
import com.dcjt.firehotcarpad.utils.KeyboardHelper
import com.google.gson.Gson
import com.juntu.event_center.EventCenter
import com.juntu.event_center.EventListener


abstract class BaseActivity : FastTitleActivity(), EventListener {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        EventCenter.registerEventListener(this, registerTopics())
    }

    /**
     * 提供一种新的事件总线方式,少用一些EventBus,
     * 原有的EventBus可以继续使用,没有任何影响,这种方式
     * 作为一种实验方式,看看是否能够满足需求
     *
     *
     * 想要订阅某个事件   重写[BaseActivity.registerTopics]
     * 这两个方法, 在事件发送的地方[EventCenter.dispatchEvent]方法
     *
     *
     * desc:这个方式为实验方式  可不用
     *
     * @return
     */
    open fun registerTopics(): Array<String> {
        return  arrayOf(SPConstant.TAG_LOCATION_CHANGE)
    }

    override fun onDestroy() {
        super.onDestroy()
        EventCenter.unregisterEventListener(this, registerTopics())
        KeyboardHelper.with(this).setDisable()
    }


    override fun onEvent(topic: String?, msgCode: Int, resultCode: Int, data: Any?) {
        LoggerManager.e("位置变化1："+ Gson().toJson(data))

        var a = Math.floor(calculateLineDistance(DPoint((data as AMapLocation).latitude,(data as AMapLocation).longitude), DPoint(30.573646,104.060776)).toDouble())
        LoggerManager.e("距离："+ a)
    }


}